<?php

namespace App\Models;


class Article extends Base
{
    /**
     * @Author: hzwlxy
     * @Email: 120235331@qq.com
     * @Date: 2019/7/2 12:05
     * @Description: 表单post字段白名单
     * @var array
     */
    protected $fillable = [
        'title',
        'content',
        'published_at',
        'status',
    ];

    /**
     * @Author: hzwlxy
     * @Email: 120235331@qq.com
     * @Date: 2019/7/2 12:05
     * @Description:表示 published_at 字段是一个时间日期类型，在之后的代码中 $article->published_at 返回的就是一个时间日期对象,确切说是 Carbon 对象
     * @var array
     */
    protected  $dates=["published_at"];

    /**
     * @Author: hzwlxy
     * @Email: 120235331@qq.com
     * @Date: 2019/7/2 12:11
     * @Description: 一对多关系，属于admin
     * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
     */
    public  function  admin(){
        return $this->belongsTo(Admin::class,"admin_id");
    }

    /**
     * @Author: hzwlxy
     * @Email: 120235331@qq.com
     * @Date: 2019/7/2 12:13
     * @Description: 返回管理员用户名  $article->author;
     * @return mixed
     */
    public  function  getAuthorAttributes()
    {
        return $this->admin()->user_name;
    }

    /**
     * @Author: 李小云
     * @Email: 120235331@qq.com
     * @Date: 2019/7/6 18:26
     * @Description:获取随机id
     * @return mixed
     */
    public  function getRandomIdAttributes(){
            return $this->all()->random()->id;
    }


    //查询id之外的键
//    public function getRouteKeyName(){
//        return "slug";
//    }

    //获取到路由传值
//     public function  resolveRouteBinding($value)
//     {
//
//     }

    //和tag多对多,中间表有其他字段
    public  function  tags(){
        return $this->belongsToMany(Tags::class)->withPivot(["level"])->withTimestamps();
    }

//      public function getFirstTag(){
//        //return $this->tags()->first()->pivot->level;
//      }

//      public function getWithTags(){
//        return $this->tags()->where("level",1)->get();
//      }



}
